package com.cloudkinto.service.platform.vo.wowma;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@NoArgsConstructor
@Data
public class OrderWowmaEntity {
    @JsonProperty("senderAddress")
    private String senderAddress;
    @JsonProperty("usePoint")
    private double usePoint;
    @JsonProperty("deliveryMethodId")
    private String deliveryMethodId;
    @JsonProperty("authorizationDate")
    private String authorizationDate;
    @JsonProperty("orderId")
    private String orderId;
    @JsonProperty("totalGiftWrappingPrice")
    private String totalGiftWrappingPrice;
    @JsonProperty("useAuPointPriceNoTax")
    private String useAuPointPriceNoTax;
    @JsonProperty("requestTaxPriceNoTax")
    private String requestTaxPriceNoTax;
    @JsonProperty("cancelStatus")
    private String cancelStatus;
    private String cancelDate;
    @JsonProperty("chargePriceTaxRate")
    private String chargePriceTaxRate;
    @JsonProperty("totalItemOptionPrice")
    private String totalItemOptionPrice;
    @JsonProperty("useAuPointCancel")
    private String useAuPointCancel;
    @JsonProperty("couponTotalPriceNormalTax")
    private String couponTotalPriceNormalTax;
    @JsonProperty("sellMethodSegment")
    @ApiModelProperty("1：通常販売　2：予約販売")
    private String sellMethodSegment;
    @JsonProperty("senderName")
    private String senderName;
    @JsonProperty("ordererAddress")
    private String ordererAddress;
    @JsonProperty("premiumMallPrice")
    private String premiumMallPrice;
    @JsonProperty("requestTaxPriceReducedTax")
    private String requestTaxPriceReducedTax;
    @JsonProperty("ordererName")
    private String ordererName;
    @JsonProperty("ordererKana")
    private String ordererKana;
    @JsonProperty("secureSegment")
    private String secureSegment;
    @JsonProperty("ordererPhoneNumber1")
    private String ordererPhoneNumber1;
    @JsonProperty("requestPrice")
    private String requestPrice;
    @JsonProperty("requestPriceNormalTax")
    private String requestPriceNormalTax;
    @JsonProperty("usePointNoTax")
    private String usePointNoTax;
    @JsonProperty("elecReceiptIssueTimes")
    private String elecReceiptIssueTimes;
    @JsonProperty("useAuPointPrice")
    private String useAuPointPrice;
    @JsonProperty("mailAddress")
    private String mailAddress;
    @JsonProperty("requestPriceReducedTax")
    private String requestPriceReducedTax;
    @JsonProperty("pointFixedDate")
    private String pointFixedDate;
    @JsonProperty("senderZipCode")
    private String senderZipCode;
    @JsonProperty("totalSalePriceReducedTax")
    private String totalSalePriceReducedTax;
    @JsonProperty("senderKana")
    private String senderKana;
    @JsonProperty("totalPriceNoTax")
    private String totalPriceNoTax;
    @JsonProperty("requestTaxPriceNormalTax")
    private String requestTaxPriceNormalTax;
    @JsonProperty("totalSalePriceNormalTax")
    private String totalSalePriceNormalTax;
    @JsonProperty("siteAndDevice")
    private String siteAndDevice;
    @JsonProperty("settlementName")
    private String settlementName;
    @JsonProperty("totalSaleUnit")
    private String totalSaleUnit;
    @JsonProperty("usePointNormalTax")
    private String usePointNormalTax;
    @JsonProperty("ordererZipCode")
    private String ordererZipCode;
    @JsonProperty("useAuPointPriceReducedTax")
    private String useAuPointPriceReducedTax;
    @JsonProperty("pointFixedStatus")
    private String pointFixedStatus;
    private String memo;
    @ApiModelProperty(" 発売(入荷)予定日\n yyyy-MM-dd")
    private String releaseDate;
    @JsonProperty("detail")
    private List<DetailDTO> detail;
    @JsonProperty("orderDate")
    private String orderDate;
    @JsonProperty("totalItemOptionPriceTaxRate")
    private String totalItemOptionPriceTaxRate;
    @JsonProperty("totalGiftWrappingPriceTaxRate")
    private String totalGiftWrappingPriceTaxRate;
    @JsonProperty("deliveryName")
    private String deliveryName;
    @JsonProperty("premiumIssuePrice")
    private String premiumIssuePrice;
    @JsonProperty("totalPrice")
    private String totalPrice;
    @JsonProperty("settleStatus")
    private String settleStatus;
    @JsonProperty("premiumMember")
    private String premiumMember;
    @JsonProperty("senderPhoneNumber1")
    private String senderPhoneNumber1;
    private String senderPhoneNumber2;
    @JsonProperty("orderStatus")
    @ApiModelProperty("新規受付\n発送前入金待ち\n発送後入金待ち\n与信待ち\n発送待ち\n完了\n保留\nキャンセル\n" +
            "各種カスタムステータス（取引管理で貴店舗が登録したステータス名）\n新規予約\n予約中\n不正取引審査中\nキャンセル受付中\n送付先情報入力待ち\n※送付先情報入力待ちステータスは指定した店舗のみ利用可能")
    private String orderStatus;
    @JsonProperty("totalSalePriceNoTax")
    private String totalSalePriceNoTax;
    @JsonProperty("totalPriceReducedTax")
    private String totalPriceReducedTax;
    @JsonProperty("authorizationStatus")
    private String authorizationStatus;
    @JsonProperty("couponTotalPrice")
    private String couponTotalPrice;
    @JsonProperty("totalSalePrice")
    private double totalSalePrice;
    @JsonProperty("elecReceiptIssueStatus")
    private String elecReceiptIssueStatus;
    @JsonProperty("nickname")
    private String nickname;
    @JsonProperty("shipStatus")
    private String shipStatus;
    private String shipDate;
    @JsonProperty("pgOrderId")
    private String pgOrderId;
    @JsonProperty("paymentStatus")
    private String paymentStatus;
    @JsonProperty("useAuPointPriceNormalTax")
    private String useAuPointPriceNormalTax;
    @JsonProperty("totalPriceNormalTax")
    private String totalPriceNormalTax;
    @JsonProperty("couponTotalPriceReducedTax")
    private String couponTotalPriceReducedTax;
    @JsonProperty("requestPriceNoTax")
    private String requestPriceNoTax;
    @JsonProperty("printStatus")
    private String printStatus;
    @JsonProperty("postagePrice")
    private String postagePrice;
    @JsonProperty("chargePrice")
    private String chargePrice;
    @JsonProperty("useAuPoint")
    private double useAuPoint;
    @JsonProperty("couponTotalPriceNoTax")
    private String couponTotalPriceNoTax;
    @JsonProperty("tradeRemarks")
    private String tradeRemarks;
    @JsonProperty("premiumShopPrice")
    private String premiumShopPrice;
    @JsonProperty("premiumType")
    private String premiumType;
    @JsonProperty("usePointReducedTax")
    private String usePointReducedTax;
    @JsonProperty("contactStatus")
    private String contactStatus;
    @JsonProperty("paymentDate")
    private String paymentDate;
    @JsonProperty("postagePriceTaxRate")
    private String postagePriceTaxRate;

    @NoArgsConstructor
    @Data
    public static class DetailDTO {
        @JsonProperty("giftWrappingPrice")
        private String giftWrappingPrice;
        @JsonProperty("beforeDiscount")
        private String beforeDiscount;
        @JsonProperty("itemCode")
        private String itemCode;
        @JsonProperty("itemOption")
        private String itemOption;
        @JsonProperty("totalItemChargePrice")
        private String totalItemChargePrice;
        @JsonProperty("discount")
        private String discount;
        @JsonProperty("itemOptionPrice")
        private String itemOptionPrice;
        @JsonProperty("giftPoint")
        private String giftPoint;
        @JsonProperty("orderDetailId")
        private String orderDetailId;
        @JsonProperty("taxRate")
        private String taxRate;
        @JsonProperty("itemName")
        private String itemName;
        @JsonProperty("unit")
        private int unit;
        @JsonProperty("lotnumber")
        private String lotnumber;
        @JsonProperty("itemPrice")
        private double itemPrice;
        @JsonProperty("totalItemPrice")
        private String totalItemPrice;
        @JsonProperty("reducedTax")
        private String reducedTax;
        @JsonProperty("shippingDayDispText")
        private String shippingDayDispText;
        @ApiModelProperty("yyyy-MM-dd")
        private String shippingTimelimitDate;

        @JsonProperty("itemManagementId")
        private String itemManagementId;
        @JsonProperty("taxType")
        private String taxType;
        @JsonProperty("itemCancelStatus")
        private String itemCancelStatus;
        @ApiModelProperty("1:クロネコヤマト、2:佐川急便、4:福山通運、\n" +
                "5:西濃運輸、6:日本郵便、7:Rakuten EXPRESS、9:その他配送会社")
        private String shippingCarrier;

        private String shippingNumber;
    }






}
